import Vue from 'vue'
import Vuex from 'vuex'
import storage from '../utils/storage'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 存入登录的成功的token值
    token:"",
    // 用户登录的个人信息的数据
    userInfo:"",
    // 每次从电影页面点击进入电影详情页，保存电影的信息，选座购票后比避免重复请求数据
    filmInfo:{},
    // 当前的影院信息
    curCinema:"",
    // 当前电影有档期的影院
    curFilmCinemas:[],
    // 影院列表
    CinemaList: [],
    // 当前城市的信息,默认为北京
    locationCity:{name:"北京",cityId:110100,first:0},
  },
  mutations: {
    // 影院列表初始化时保存所有影院
    initCinema(state,CinemaList){
      state.CinemaList = CinemaList;
      storage.local.setJson('CinemaList',CinemaList)
      // localStorage.setItem("CinemaList", JSON.stringify(CinemaList));
  },
  // 电影搜选出所有有档期的影院
    savecurFilmCinemas(state,curFilmCinemas){
      state.curFilmCinemas = curFilmCinemas;
      storage.local.setJson('curFilmCinemas',curFilmCinemas)
      // localStorage.setItem("curFilmCinemas", JSON.stringify(curFilmCinemas));
  },
  // 传入city信息
    passOnCity(state, city) {
    // 每次更新时存入本地，读取时直接从本地读取，避免刷新时出现vuex丢失数据
      state.locationCity = city;
      storage.local.setJson('cityInfo', city);
      storage.session.setJson('cityInfo',city)
      storage.cookie.set('cityInfo',city.name)
      storage.cookie.set('citypath',city,{expires: 7})
    // localStorage.setItem("cityInfo", JSON.stringify(city));
  },
  // 点击电影详情时，保存电影的信息，减少axios的请求
    saveFilmInfo(state,info){
      state.filmInfo = info;
      storage.session.setJson('filmInfo', info);
      // sessionStorage.setItem("filmInfo",JSON.stringify(info));
    } ,
  // 点击电影详情时，保存电影的信息，减少axios的请求
    savecurCinemaInfo(state,curCinema){
      state.curCinema = curCinema;
      storage.session.setJson('curCinema',curCinema)
      // sessionStorage.setItem("curCinema",JSON.stringify(curCinema));
    } ,
    saveUserInfo(state,userInfo){
      state.token=userInfo.token;
      state.userInfo = userInfo;
      storage.session.setJson('userInfo', userInfo)
      storage.session.set('token',userInfo.token)
      // sessionStorage.setItem("userInfo",JSON.stringify(userInfo));
      // sessionStorage.setItem("token",JSON.stringify(userInfo.token));
    }

  },
  actions: {
  },
  modules: {

  }
})
